package cl.BEANs;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import cl.POJOs.*;
import cl.DAOs.*;
import java.util.List;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;

@ManagedBean
@SessionScoped
public class TutorBean {

    Tutor tutor = new Tutor();
    private TutorDao tutdao = new TutorDao();
    private List<Tutor> lstTutores;

    public TutorBean() {
        tutor.setDireccion(new Direccion());
    }

    public Tutor getTutor() {
        return tutor;
    }

    public void setTutor(Tutor tutor) {
        this.tutor = tutor;
    }

    public List<Tutor> getLstTutores() {
        return lstTutores;
    }

    public void setLstTutores(List<Tutor> lstTutores) {
        this.lstTutores = lstTutores;
    }

    public void registrar() throws Exception {
        tutdao.Registrar(this.tutor);
    }

    public String Eliminar(Tutor tut) throws Exception {
        int numero = tutdao.Eliminar(tut);
        if (numero == 0) {
            ExternalContext ext = FacesContext.getCurrentInstance().getExternalContext();
            ext.redirect("errorbd.xhtml");
            return "error";
        } else {
            this.listar();
            ExternalContext ext = FacesContext.getCurrentInstance().getExternalContext();
            ext.redirect("intranetadmin.xhtml");
            return "intranetadmin";
        }

    }

    public String leer(Tutor tut) {
        this.tutor = tut;
        return "editartutor";
    }

    public String modificar() throws Exception {
        tutdao.Modificar(this.tutor);
        return "exito";
    }

    public void listar() throws Exception {
        this.lstTutores = tutdao.Listar();
    }

    public String verificarDatos() throws Exception {
        TutorDao tutordao = new TutorDao();
        Tutor tut;
        String resultado;

        try {
            tut = tutordao.verificarDatos(this.tutor);
            if (tut != null) {
                FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("tutor", tut);

                resultado = "tutorintranet";
            } else {
                resultado = "error";
            }

        } catch (Exception e) {
            throw e;
        }
        return resultado;
    }

    public boolean verificarSesion() {
        boolean estado;

        if (FacesContext.getCurrentInstance().getExternalContext()
                .getSessionMap().get("tutor") == null) {
            estado = false;
        } else {
            estado = true;
        }

        return estado;
    }

    public String cerrarSesion() {
        FacesContext.getCurrentInstance().getExternalContext()
                .invalidateSession();
        return "index";
    }

}
